
#include<iostream>
#include<string>
#include<pthread.h>
#include<unistd.h>
using namespace std;

void* threadRun(void* args)
{
    string name = (char*)args;

    int cnt = 3;
    while (cnt--)
    {
        cout << name << endl;
        sleep(1);
    }

    return (void*)12345;
}

int main()
{
    pthread_t tid;
    pthread_create(&tid, nullptr, threadRun, (void*)"thread - 1");

    void* ret;
    pthread_join(tid, &ret);
    cout << "return value = " << (long long) ret << endl;

    return 0;
}


// void *ThreadRun(void* arg)
// {
//     int cnt = 10;
//     while(cnt--)
//     {
//         cout<<"cnt: "<<cnt<<endl;
//         sleep(1);
//     }
//     return (void*)10086;
// }

// string PrintToHex(pthread_t &tid)
// {
//     char buffer[64];
//     snprintf(buffer,sizeof buffer,"0x%lx",tid);
//     return buffer;
// }

// int main()
// {

//     pthread_t tid;
//     int n = pthread_create(&tid,nullptr,ThreadRun,(void*)"arg 1");

//     //打印tid
//     string tid_str = PrintToHex(tid);
//     cout<<"tid : "<< tid_str << endl;
    
//     cout<<"main Thread begin..."<<endl;
//     void* code =  nullptr;
//     n = pthread_join(tid,&code);
//     cout<<"new thread exit code : "<< (uint64_t)code <<endl;
//     if(n==0)
//     {
//         cout<<"main wait success!!!!!!!"<<endl;
//     }

//     return 0;
// }
